home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-07-21 | 65.3 KB | 2,733 lines |
- -------------------- Bug No 1 --------------------------
- Return-Path: <c.robbins@uk.co.xtel>
- Received: from spitfire by lancaster.xtel.co.uk with SMTP (PP)
- id <02521-0@lancaster.xtel.co.uk>; Tue, 12 Mar 1991 13:23:36 +0000
- To: quipu-bugs@xtel.co.uk
- Subject: Watchdogs
- Date: Tue, 12 Mar 91 13:24:08 +0000
- From: Colin Robbins <c.robbins@xtel.co.uk>
-
- QUIPU VERSION: 6.8
-
- ISODE VERSION: 6.8
-
- MACHINE: Sun 4/330 (X-TEL config)
-
- O/S: SunOS 4.1
-
- PROGRAM/CHANNEL:
- ros.quipu
-
- SYNOPSIS: Watchdog activated
-
- DESCRIPTION: A DSA from time to time logs "Watchdog activated" in
- dsap.log file, and the restarts itself
-
- REPEAT BY: -
-
- SAMPLE FIX: This may fix it, time will tell...
-
- *** ../../isode-master/tsap/tp0ts.c Sun May 12 17:36:52 1991
- --- ./tp0ts.c Wed May 22 14:08:55 1991
- ***************
- *** 527,532 ****
- --- 524,541 ----
- tx -> tx_qbuf.qb_forw = tx -> tx_qbuf.qb_back = &tx -> tx_qbuf;
-
- for (;;) {
- + if (oob) { /* out of band data should not be present! */
- + (void) tsaplose (td, t ? t -> t_errno : DR_CONGEST, NULLCP,
- + "Out of band data received");
- + #ifdef X25
- + if (tb -> tb_flags & TB_X25)
- + LLOG (x25_log, LLOG_NOTICE,
- + ("out of band data on %d, %d/%d octets sent/recv",
- + tb -> tb_fd, tb -> tb_sent, tb -> tb_recv));
- + #endif
- + break;
- + }
- +
- if ((t = fd2tpkt (tb -> tb_fd, tb -> tb_initfnx, tb -> tb_readfnx))
- == NULL
- || t -> t_errno != OK) {
-
- *** ssap/ssapinitiate.c~ Wed Jun 5 13:54:11 1991
- --- ssap/ssapinitiate.c Wed Jun 5 16:01:31 1991
- ***************
- *** 162,171 ****
- --- 162,184 ----
-
- if ((sb = newsblk ()) == NULL)
- return ssaplose (si, SC_CONGEST, NULLCP, "out of memory");
- +
- + #ifdef notanymore /* Possible cause of QUIPU watchdogs */
- +
- if (!async || qos == NULLQOS || qos -> qos_maxtime <= 0)
- sb -> sb_maxtime = NOTOK;
- else
- sb -> sb_maxtime = qos -> qos_maxtime;
- +
- + #else
- +
- + if (!async || qos == NULLQOS)
- + sb -> sb_maxtime = NOTOK;
- + else
- + if ((sb -> sb_maxtime = qos -> qos_maxtime) == 0)
- + sb -> sb_maxtime = 1; /* Very nearly zero */
- +
- + #endif
-
- if ((s = newspkt (SPDU_CN)) == NULL) {
- (void) ssaplose (si, SC_CONGEST, NULLCP, "out of memory");
- ORIGINAL REPORT:
- from the development team
- -------------------- Bug No 2 --------------------------
- Return-Path: <c.robbins@uk.co.xtel>
- Received: from spitfire by lancaster.xtel.co.uk with SMTP (PP)
- id <02732-0@lancaster.xtel.co.uk>; Tue, 12 Mar 1991 13:28:19 +0000
- To: quipu-bugs@xtel.co.uk
- Subject: Dish memory leak
- Date: Tue, 12 Mar 91 13:28:49 +0000
- From: Colin Robbins <c.robbins@xtel.co.uk>
-
- QUIPU VERSION: 6.8
-
- ISODE VERSION: 6.8
-
- MACHINE: Sun 4/330 (X-TEL config)
-
- O/S: SunOS 4.1
-
- PROGRAM/CHANNEL:
- dish
-
- SYNOPSIS: dish slowly gets bigger and bigger
- during a session. (partial fix only)
-
- DESCRIPTION:
-
- REPEAT BY: running dish!
-
- SAMPLE FIX:
-
- *** quipu/dish/_dishlib.c Tue Mar 19 14:56:22 1991
- --- quipu/dish/dishlib.c Tue Mar 19 14:55:58 1991
- ***************
- *** 64,70 ****
- char frompipe;
- PS opt, rps;
-
- ! DN savename;
-
- SFD dish_quit ();
- SFD dish_intr ();
- --- 64,70 ----
- char frompipe;
- PS opt, rps;
-
- ! DN savename = NULLDN;
-
- SFD dish_quit ();
- SFD dish_intr ();
- ***************
- *** 447,452 ****
- --- 447,454 ----
- (void) signal (SIGALRM, SIG_IGN); /* unset alarm */
- command = TidyString(inbuf);
- }
- + if (savename)
- + dn_free (savename);
- savename = dn_cpy (dn);
- hide_picture();
- dish_state = BUSY;
-
- ORIGINAL REPORT:
-
- ------- Forwarded Messages
-
- Subject: More on PE memory leaks in 6.7m
- Reported-On: Mon, 04 Mar 91 20:19:06 +0000
- Reported-By: valdis@vttcf.cc.vt.edu (Valdis Kletnieks)
- Reported-To: bug-isode@nisc.psi.net
-
- After doing more research, it appears the problem is as follows:
-
- PE's are allocated by psap/qbuf2pe_f.c at line 129.
-
- However, the various routines in pepsy/fre.c only actually issue
- a pe_free() for (essentially) the case pe->pe_form == PE_PRIM.
- For the various constructor cases, after pepsy/dec.c (in pr_seq()
- and friends) has walked over the PE and created a tpe, the PE is
- essentially dropped on the floor and ignored.
-
- For the various constructors, I beleive that either fre.c should
- be freeing the PE (which also imples that dec.c saves the pointer
- in the tpe->pe_ucode field (or similar hack)), or that dec.c should
- issue a pe_free() once it has build the corresponding tpe.
-
- Valdis Kletnieks
- Computer Systems Engineer
- Virginia Tech
-
- ------- Message 2
-
- Subject: Memory leak in isode-6.7m/quipu/dish/dishlib.c
- Reported-On: Tue, 05 Mar 91 01:28:22 +0000
- Reported-By: valdis@vttcf.cc.vt.edu (Valdis Kletnieks)
- Reported-To: bug-isode@nisc.psi.net
-
- quipu/dish/dishlib.c:do_dish(), line 444 contains a call to dn_cpy()
- which creates a new copy of the current DN, which is never released.
- The resulting pointer is saved in 'savename', and only reset in
- dishhelp.c:Usage().
-
- In our particular case, this results in a leak of 6 malloc() calls,
- of 8, 16, 3, 8, 16, and 14 bytes respectively.
-
- Valdis Kletnieks
- Computer Systems Engineer
- Virginia Tech
-
- ------- End of Forwarded Messages
-
- -------------------- Bug No 3 --------------------------
- Return-Path: <c.robbins@uk.co.xtel>
- Received: from spitfire by lancaster.xtel.co.uk with SMTP (PP)
- id <02755-0@lancaster.xtel.co.uk>; Tue, 12 Mar 1991 13:30:35 +0000
- To: quipu-bugs@xtel.co.uk
- Subject: Loosing file descriptors
- Date: Tue, 12 Mar 91 13:31:06 +0000
- From: Colin Robbins <c.robbins@xtel.co.uk>
-
- QUIPU VERSION: 6.8
-
- ISODE VERSION: 6.8
-
- MACHINE: Sun 4/330 (X-TEL config)
-
- O/S: SunOS 4.1
-
- PROGRAM/CHANNEL:
- ros.quipu
-
- SYNOPSIS: ros.quipu seems to loose track of a file descriptor
- from time to time (no fix yet)
-
- DESCRIPTION: kill -USR1 now gives a list of fd's accoring to the
- UNIX kernal, and Quipu. These do not always agree!
-
- REPEAT BY:
-
- SAMPLE FIX:
-
- ORIGINAL REPORT:
- Marshall Rose
- -------------------- Bug No 4 --------------------------
- Return-Path: <c.robbins@uk.co.xtel>
- Received: from spitfire by lancaster.xtel.co.uk with SMTP (PP)
- id <03082-0@lancaster.xtel.co.uk>; Tue, 12 Mar 1991 13:34:08 +0000
- To: quipu-bugs@xtel.co.uk
- Subject: Control c in dish
- Date: Tue, 12 Mar 91 13:34:38 +0000
- From: Colin Robbins <c.robbins@xtel.co.uk>
-
- QUIPU VERSION: 6.8
-
- ISODE VERSION: 6.8
-
- MACHINE: Sun 4/330 (X-TEL config)
-
- O/S: SunOS 4.1
-
- PROGRAM/CHANNEL:
- dish
-
- SYNOPSIS: when searching, a control-c to dish will sometimes
- cause a core dump (no fix yet)
-
-
- DESCRIPTION: It seems to be OK if dish is in select. The problem
- would appear to happen when on the "way down" or
- "way up" the stack.
- Tim Howes reported this can core dump the DSA.
-
- REPEAT BY:
-
- SAMPLE FIX:
-
- ORIGINAL REPORT:
- Paul Barker
- Time Howes.
- -------------------- Bug No 5 --------------------------
- Return-Path: <c.robbins@uk.co.xtel>
- Received: from spitfire by lancaster.xtel.co.uk with SMTP (PP)
- id <14125-0@lancaster.xtel.co.uk>; Thu, 14 Mar 1991 14:56:34 +0000
- To: quipu-bugs@xtel.co.uk
- Subject: Modify inherited attributes
- Date: Thu, 14 Mar 91 14:57:14 +0000
- From: Colin Robbins <c.robbins@xtel.co.uk>
-
- QUIPU VERSION: 6.8
-
- ISODE VERSION: 6.8
-
- MACHINE: Sun 4/330 (X-TEL config)
-
- O/S: SunOS 4.1
-
- PROGRAM/CHANNEL:
- ros.quipu
-
- SYNOPSIS:
- Can not modify an attribute value if it is inherited
- into your entry.
-
- DESCRIPTION:
- If an attribute is inherited into an entry, then
- attempts to modify the entry via DAP fail with an
- access rights error message (even if bound as the DSA
- manager).
-
- SAMPLE FIX:
- No patch as yet.
- You can worked round it by first adding the new value
- for the attribute, then in a second operation removing
- the inherited value (if it is default inherited).
-
- ORIGINAL REPORT:
- From the WPP pilot.
-
- -------------------- Bug No 6 --------------------------
- Return-Path: <c.robbins@uk.co.xtel>
- Received: from spitfire by lancaster.xtel.co.uk with SMTP (PP)
- id <21255-0@lancaster.xtel.co.uk>; Fri, 15 Mar 1991 09:12:55 +0000
- To: quipu-bugs@xtel.co.uk
- Subject: dsastats
- Date: Fri, 15 Mar 91 09:13:40 +0000
- From: Colin Robbins <c.robbins@xtel.co.uk>
-
-
- QUIPU VERSION: 6.8
-
- ISODE VERSION: 6.8
-
- MACHINE: Sun 4/330 (X-TEL config)
-
- O/S: SunOS 4.1
-
- PROGRAM: dsastats
-
- SYNOPSIS: date showed up incorrectly from time to time
-
- DESCRIPTION:
-
- REPEAT BY:
-
- SAMPLE FIX: patch below
-
- ORIGINAL REPORT:
-
- ------- Forwarded Message
-
- Subject: A few small awk tweaks...
- Reported-On: Wed, 13 Mar 91 21:39:13 +0000
- Reported-By: root@vttcf.cc.vt.edu (The Super-user)
- Reported-To: bug-isode@nisc.psi.net
-
- (1) Added a count for '(protected)' binds
- (2) Fixed a problem where the day showed as '2147483647 mar'
-
- Valdis Kletnieks
- Computer Systems Engineer
- Virginia Tech
-
- - -- start patch file against isode-interim sources --
- *** others/quipu/tools/dsastats/dsastats.dist.real Wed Mar 13 16:06:38 199
- 1
- - --- others/quipu/tools/dsastats/dsastats.dist Wed Mar 13 16:35:12 1991
- ***************
- *** 44,50 ****
- }
- {
- monthno = substr($0, 1, 2) + 0
- ! dayno = substr($0, 4, 2)
- time = substr($0, 7, 8)
- printf("%s on %02d %s", time, dayno, montharray[monthno])
- } '
- - --- 44,50 ----
- }
- {
- monthno = substr($0, 1, 2) + 0
- ! dayno = substr($0, 4, 2) + 0
- time = substr($0, 7, 8)
- printf("%s on %02d %s", time, dayno, montharray[monthno])
- } '
- ***************
- *** 349,354 ****
- - --- 349,362 ----
- localsimple++
- }
-
- + /.* bind.*\(protected\).*/ {
- +
- + if (substr($0, 1, 6) == "remote")
- + remoteprotected++
- + else
- + localprotected++
- + }
- +
- / bind.*\(no auth\)| bind.*\(simple\)/ {
- n = index($0, ":")
- username = substr($0, n+2)
- ***************
- *** 468,473 ****
- - --- 476,482 ----
- printf "%-20s%10s%8d%8d\n", "Unauth name DAP", "", localnoauthdap, remo
- tenoauthdap
- printf "%-20s%10s%8d%8d\n", "Unauth name DSP", "",localnoauthdsp, remot
- enoauthdsp
- printf "%-20s%10s%8d%8d\n", "Simple", "", localsimple, remotesimple
- + printf "%-20s%10s%8d%8d\n", "Protected", "", localprotected, remoteprot
- ected
-
- #print "have this list of users"
- #for (user in usernames)
- - -- end patch file --
-
-
- ------- End of Forwarded Message
-
- -------------------- Bug No 7 --------------------------
- Return-Path: <c.robbins@uk.co.xtel>
- Received: from spitfire by lancaster.xtel.co.uk with SMTP (PP)
- id <21266-0@lancaster.xtel.co.uk>; Fri, 15 Mar 1991 09:14:12 +0000
- To: quipu-bugs@xtel.co.uk
- Subject: 'help' function in 'pod' broken
- Date: Fri, 15 Mar 91 09:14:54 +0000
- From: Colin Robbins <c.robbins@xtel.co.uk>
-
- QUIPU VERSION: 6.8
-
- ISODE VERSION: 6.8
-
- MACHINE: Sun 4/330 (X-TEL config)
-
- O/S: SunOS 4.1
-
- PROGRAM: pod
-
- SYNOPSIS: 'help' function in 'pod' broken
-
- DESCRIPTION:
-
- REPEAT BY:
-
- SAMPLE FIX: patch below
-
- ORIGINAL REPORT:
-
- ------- Forwarded Message
-
- Subject: 'help' function in 'pod' broken
- Reported-On: Wed, 13 Mar 91 23:30:05 +0000
- Reported-By: valdis@vttcf.cc.vt.edu (Valdis Kletnieks)
- Reported-To: bug-isode@nisc.psi.net
-
- A bad assignment to a pathname keeps the 'help' function from working.
- A patch against the isode-interim sources follows.
-
- Valdis Kletnieks
- Computer Systems Engineer
- Virginia Tech
- - -- start patch file --
- *** others/quipu/uips/pod/calls.c.dist Wed Mar 13 18:21:20 1991
- - --- others/quipu/uips/pod/calls.c Wed Mar 13 18:21:23 1991
- ***************
- *** 139,145 ****
- (void) strcpy(dua_help_dir, dua_config_dir);
-
- (void) strcat(dua_config_dir, "/duaconfig");
- ! (void) strcat(dua_help_dir, "/podHelpdir");
-
- (void) strcpy (user_path, getenv("HOME"));
- (void) strcpy(read_path, user_path);
- - --- 139,145 ----
- (void) strcpy(dua_help_dir, dua_config_dir);
-
- (void) strcat(dua_config_dir, "/duaconfig");
- ! (void) strcat(dua_help_dir, "/podHelpdir/");
-
- (void) strcpy (user_path, getenv("HOME"));
- (void) strcpy(read_path, user_path);
- - -- end patch file --
-
- ------- End of Forwarded Message
-
- -------------------- Bug No 8 --------------------------
- Return-Path: <c.robbins@uk.co.xtel>
- Received: from spitfire by lancaster.xtel.co.uk with SMTP (PP)
- id <21240-0@lancaster.xtel.co.uk>; Fri, 15 Mar 1991 09:10:58 +0000
- To: quipu-bugs@xtel.co.uk
- Subject: fred format changed
- Date: Fri, 15 Mar 91 09:11:42 +0000
- From: Colin Robbins <c.robbins@xtel.co.uk>
-
- ISODE VERSION: 6.8
-
- MACHINE: Sun 4/330 (X-TEL config)
-
- O/S: SunOS 4.1
-
- PROGRAM: fred
-
- SYNOPSIS: Fred format with -mail flag not quite the
- same as with 6.0
-
- DESCRIPTION:
-
- REPEAT BY:
-
- SAMPLE FIX: patch below
-
- ORIGINAL REPORT:
- carlson@lll-winken.llnl.gov
-
-
-
- ------- Forwarded Message
-
- Subject: Re: 6.8 upgrade question
- Reported-On: Tue, 12 Mar 91 14:07:10 -0800
- Reported-By: Marshall Rose <mrose@cheetah.ca.psi.com>
- Reported-To: carlson@lll-winken.llnl.gov
-
- Try this patch and let me know what you think.
-
- /mtr
- *** quipu/dish/_fred.c Sat Mar 9 11:56:30 1991
- - --- quipu/dish/fred.c Tue Mar 12 14:03:49 1991
- ***************
- *** 88,93 ****
- - --- 88,96 ----
- extern LLog *dad_log;
- #endif
-
- + extern Attr_Sequence
- + ufnas;
- +
- char fred_flag;
- char fred_expand;
- char fred_list;
- ***************
- *** 136,146 ****
- - --- 139,161 ----
- int argc;
- char **argv;
- {
- + static int did_ufnas = 0;
- +
- if (argc < 2)
- goto usage;
-
- fred_init ();
- + if (!did_ufnas) {
- + if (ufn_init () == FALSE) {
- + ps_printf (OPT, "UFN initialization fails.\n");
- + return;
- + }
-
- + ufnas = as_merge (ufnas, as_cpy (fred_as ()));
- +
- + did_ufnas = 1;
- + }
- +
- if (test_arg (argv[1], "-display", 7)) {
- if (argc != 3)
- goto usage;
- ***************
- *** 858,865 ****
- extern char search_result;
- #endif
- extern char remote_prob;
- - - extern Attr_Sequence
- - - ufnas;
-
- /* */
-
- - --- 873,878 ----
- ***************
- *** 869,879 ****
- {
- struct dn_seq *dns;
-
- - - if (ufn_init () == FALSE) {
- - - ps_printf (OPT, "UFN initialization fails.\n");
- - - return;
- - - }
- - -
- if (rebind () != OK)
- return;
-
- - --- 882,887 ----
- ***************
- *** 885,902 ****
- else
- fred_list = FALSE;
- if (n > 0 && strcmp (vec[0], "-mailbox") == 0) {
- - - static int did_ufnas = 0;
- - -
- n--, vec++;
- fred_mailbox = TRUE;
- !
- ! if (!did_ufnas) {
- ! did_ufnas = 1;
- ! if (t_mbox == NULL)
- ! fatal (-100, "rfc822Mailbox: invalid attribute type");
- !
- ! ufnas = as_merge (ufnas, as_cpy (fred_as ()));
- ! }
- }
- else
- fred_mailbox = FALSE;
- - --- 893,902 ----
- else
- fred_list = FALSE;
- if (n > 0 && strcmp (vec[0], "-mailbox") == 0) {
- n--, vec++;
- fred_mailbox = TRUE;
- ! if (t_mbox == NULL)
- ! fatal (-100, "rfc822Mailbox: invalid attribute type");
- }
- else
- fred_mailbox = FALSE;
- ***************
- *** 1515,1524 ****
- - --- 1515,1526 ----
- register DN adn;
- register RDN rdn;
-
- + /*
- if (islong == FALSE) {
- ufn_dn_print_aux (RPS, mydn, NULLDN, 0);
- goto ufn_short;
- }
- + */
- for (adn = mydn; adn -> dn_parent; adn = adn -> dn_parent)
- continue;
- myrdn = adn -> dn_rdn;
-
- ------- End of Forwarded Message
-
- -------------------- Bug No 9 --------------------------
- Return-Path: <c.robbins@uk.co.xtel>
- Received: from spitfire by lancaster.xtel.co.uk with SMTP (PP)
- id <01170-0@lancaster.xtel.co.uk>; Fri, 15 Mar 1991 16:40:10 +0000
- To: quipu-bugs@xtel.co.uk
- Subject: optimize_attr doc error
- Date: Fri, 15 Mar 91 16:40:03 +0000
- From: Colin Robbins <c.robbins@xtel.co.uk>
-
- QUIPU VERSION: 6.8
-
- ISODE VERSION: 6.8
-
- MACHINE: Sun 4/330 (X-TEL config)
-
- O/S: SunOS 4.1
-
- PROGRAM:
-
- SYNOPSIS: documentation says index_attribute instead of optimize_attr
-
- DESCRIPTION:
-
- REPEAT BY:
-
- SAMPLE FIX: use optimize_attr
-
- ORIGINAL REPORT:
-
- ------- Forwarded Message
-
- Subject: Documentation error in ISODE 6.8
- Reported-On: 15 Mar 91 11:17:00 -0500
- Reported-By: Peter (P.W.) Whittaker <PWW@BNR.ca>
- Reported-To: quipu-support@cs.ucl.ac.uk
-
- Page 140 of V5 (QUIPU) says that optimize_attr is the quiputailor variable
- used to indicated which attributes are indexed, while Colin's upgrading
- document says that it is index_attribute. Which (if any) is it?
-
-
- ------- End of Forwarded Message
-
- -------------------- Bug No 10 --------------------------
- Return-Path: <c.robbins@uk.co.xtel>
- Received: from spitfire by lancaster.xtel.co.uk with SMTP (PP)
- id <07395-0@lancaster.xtel.co.uk>; Mon, 18 Mar 1991 08:13:45 +0000
- To: quipu-bugs@xtel.co.uk
- Subject: Inheritance scheam error
- Date: Mon, 18 Mar 91 08:13:54 +0000
- From: Colin Robbins <c.robbins@xtel.co.uk>
-
- QUIPU VERSION: 6.8
-
- ISODE VERSION: 6.8
-
- MACHINE: Sun 4/330 (X-TEL config)
-
- O/S: SunOS 4.1
-
- PROGRAM: ros.quipu
-
- SYNOPSIS: With inherited attributes you can introduce a schema
- error that is not notice until the next DSA re-boot
- (no fix yet)
-
- DESCRIPTION:
-
- REPEAT BY:
-
- SAMPLE FIX:
-
- ORIGINAL REPORT:
-
- ------- Forwarded Message
-
- Subject: Inheritance (caution)
- Reported-On: Sun, 17 Mar 91 15:17:49 +0000
- Reported-By: "Andrew Macpherson (Postmaster)" <andrew@uk.co.stc.stl.palm13>
- Reported-To: quipu-support@cs.ucl.ac.uk
-
-
- Nice. There are no checks though that the aggregate inheriting
- the properties has the ability to inherit those properties. Eg
- `person' inheriting telephoneNumber --- you can add this to a running
- DSA, and not notice the schema error until re-boot time.
-
- [[This may be in the documentation, I havn't run latex yet.]]
-
- ------- End of Forwarded Message
-
- -------------------- Bug No 11 --------------------------
- Return-Path: <c.robbins@uk.co.xtel>
- Received: from spitfire by lancaster.xtel.co.uk with SMTP (PP)
- id <09365-0@lancaster.xtel.co.uk>; Mon, 18 Mar 1991 09:55:11 +0000
- To: quipu-bugs@xtel.co.uk
- Subject: unknown di-type
- Date: Mon, 18 Mar 91 09:55:22 +0000
- From: Colin Robbins <c.robbins@xtel.co.uk>
-
- QUIPU VERSION: 6.8
-
- ISODE VERSION: 6.8
-
- MACHINE: Sun 4/330 (X-TEL config)
-
- O/S: SunOS 4.1
-
- PROGRAM: ros.quipu
-
- SYNOPSIS: see
- get_dsa_info_aux - unknown di-type nnn
- followed by a DSA crash in the log files.
-
- DESCRIPTION:
-
- REPEAT BY:
-
- SAMPLE FIX:
-
- *** quipu/_di_block.c Mon Mar 18 15:30:32 1991
- --- quipu/di_block.c Mon Mar 18 15:31:46 1991
- ***************
- *** 140,146 ****
- {
- di_tmp1_next = di_tmp1->di_next;
-
- ! switch(di->di_state)
- {
- case DI_ACCESSPOINT:
- case DI_COMPLETE:
- --- 140,146 ----
- {
- di_tmp1_next = di_tmp1->di_next;
-
- ! switch(di_tmp1->di_state)
- {
- case DI_ACCESSPOINT:
- case DI_COMPLETE:
-
-
- ORIGINAL REPORT:
-
- ------- Forwarded Message
-
- Subject: quipu-6.8
- Reported-On: Sun, 17 Mar 91 18:45:27 +0000
- Reported-By: philip@bigben.dle.dg.com (Philip Gladstone)
- Reported-To: quipu-support@cs.ucl.ac.uk
-
- Hello all,
-
- I have managed to get quipu-6.8 running (c=gb@cn=Northern
- Pudu). However, I don't know how to change the copy of the dsa entry
- that resides in the c=GB EDB. Help please!
-
- I'm also experiencing some crashes which seem to be associated
- with remote dsa information. [The following is a repeatable error that
- arises if i do a 'list @c=de']. Could this be related to the fact that
- the entry for my DSA is out of date?
-
- get_dsa_info_aux - unknown di-type 117
- Listening on ads: 6, 5.
- get_dsa_info_aux - unknown di-type 117
- Listening on ads: 6, 5.
- Should wake global
- dsa_info_error_wakeup - invalid di_type
- DSA c=gb@CN=Northern Pudu has a problem <-- crash in dsa_info_error_wakeup
-
-
-
- Weekend Hacker of Cambridge
-
- ------- End of Forwarded Message
-
- -------------------- Bug No 12 --------------------------
- Return-Path: <c.robbins@uk.co.xtel>
- Received: from spitfire by lancaster.xtel.co.uk with SMTP (PP)
- id <09393-0@lancaster.xtel.co.uk>; Mon, 18 Mar 1991 10:00:11 +0000
- To: quipu-bugs@xtel.co.uk
- Subject: dish dies on invalid ASN.1
- Date: Mon, 18 Mar 91 10:00:21 +0000
- From: Colin Robbins <c.robbins@xtel.co.uk>
-
- QUIPU VERSION: 6.8
-
- ISODE VERSION: 6.8
-
- MACHINE: Sun 4/330 (X-TEL config)
-
- O/S: SunOS 4.1
-
- PROGRAM: dish (and general ISODE)
-
- SYNOPSIS: If given invalid ASN.1 a program can die due to a
- pepsy related bug (no fix yet)
-
- DESCRIPTION: It is feared the fix below is only one such situation,
- there may be others. Time will tell.
-
- REPEAT BY:
-
- SAMPLE FIX: Supplied by Andrew Worsley...
-
- *** pepsy/dec.c_orig Sat Feb 23 05:03:45 1991
- --- pepsy/dec.c Wed Mar 20 17:02:46 1991
- ***************
- *** 1559,1564 ****
- --- 1559,1566 ----
- for (cnt = 1; p->pe_type != PE_END; NEXT_TPE(p)) {
- if (ISDTYPE(p)) {
- if (ismatch(p, mod, head->pe_class, head->pe_id)) {
- + if (!savep && poffset)
- + *poffset = cnt;
- if (pr_etype(head, parm, p, mod) == NOTOK)
- goto bad;
- if (savep) {
- ***************
- *** 1567,1574 ****
- (*mod -> md_ducode)(parm, head, savep, cnt) == NOTOK))
- goto bad;
- }
- - else
- - *poffset = cnt;
- NEXT_TPE(p);
- if (p->pe_type == UCODE) {
- if (mod->md_ducode == NULLIFP
- --- 1569,1574 ----
-
- ORIGINAL REPORT:
- CJR to quipu-support when testing Pizarro
- -------------------- Bug No 13 --------------------------
- Return-Path: <c.robbins@uk.co.xtel>
- Received: from spitfire by lancaster.xtel.co.uk with SMTP (PP)
- id <17564-0@lancaster.xtel.co.uk>; Mon, 18 Mar 1991 17:08:09 +0000
- To: quipu-bugs@xtel.co.uk
- Subject: misc fix
- Date: Mon, 18 Mar 91 17:08:20 +0000
- From: Colin Robbins <c.robbins@xtel.co.uk>
-
- QUIPU VERSION: 6.8
-
- ISODE VERSION: 6.8
-
- MACHINE: Sun 4/330 (X-TEL config)
-
- O/S: SunOS 4.1
-
- PROGRAM: ros.quipu
-
- SYNOPSIS: A few unimportant bug fixes put here
- for completeness
-
- DESCRIPTION:
-
- REPEAT BY:
-
- SAMPLE FIX:
-
- *** quipu/_find_entry.c Mon Mar 18 16:59:37 1991
- --- quipu/find_entry.c Mon Mar 18 17:04:13 1991
- ***************
- *** 609,615 ****
- (ptr->e_data == E_TYPE_SLAVE) ||
- ((ptr->e_data == E_TYPE_CACHE_FROM_MASTER) &&
- (timenow - ptr->e_age < cache_timeout))) {
- ! if ( (ptr->e_master == NULLAV) && (ptr->e_slave == NULLAV))
- continue ;
- return(dsa_info_new(object,dn_stack,master,ptr,err,di_p));
- }
- --- 609,615 ----
- (ptr->e_data == E_TYPE_SLAVE) ||
- ((ptr->e_data == E_TYPE_CACHE_FROM_MASTER) &&
- (timenow - ptr->e_age < cache_timeout))) {
- ! if ( (!ptr->e_external) && (ptr->e_master == NULLAV) && (ptr->e_slave == NULLAV))
- continue ;
- return(dsa_info_new(object,dn_stack,master,ptr,err,di_p));
- }
-
- *** quipu/_dsa.c Tue Mar 19 08:49:31 1991
- --- quipu/dsa.c Tue Mar 19 08:50:18 1991
- ***************
- *** 385,391 ****
- for (sd = 3; sd < nbits; sd++) {
- if (log_dsap -> ll_fd == sd)
- continue;
- ! #ifdef NO_STATS
- if (log_stats -> ll_fd == sd)
- continue;
- #endif
- --- 385,391 ----
- for (sd = 3; sd < nbits; sd++) {
- if (log_dsap -> ll_fd == sd)
- continue;
- ! #ifndef NO_STATS
- if (log_stat -> ll_fd == sd)
- continue;
- #endif
- ***************
- *** 499,505 ****
- for (sd = 3; sd < nbits; sd++) {
- if (log_dsap -> ll_fd == sd)
- continue;
- ! #ifdef NO_STATS
- if (log_stats -> ll_fd == sd)
- continue;
- #endif
- --- 499,505 ----
- for (sd = 3; sd < nbits; sd++) {
- if (log_dsap -> ll_fd == sd)
- continue;
- ! #ifndef NO_STATS
- if (log_stats -> ll_fd == sd)
- continue;
- #endif
- *** quipu/_ds_search.c Tue Mar 19 11:59:46 1991
- --- quipu/ds_search.c Tue Mar 19 12:00:34 1991
- ***************
- *** 1596,1602 ****
- register char * str2;
- register int count;
- char * top, *top2;
- ! char found;
-
- top = str1;
- top2 = str2 = (char *)av->av_struct;
- --- 1596,1602 ----
- register char * str2;
- register int count;
- char * top, *top2;
- ! char found = 0;
-
- top = str1;
- top2 = str2 = (char *)av->av_struct;
- *** quipu/_oper_act.c Tue Mar 19 10:47:56 1991
- --- quipu/oper_act.c Tue Mar 19 11:55:13 1991
- ***************
- *** 187,192 ****
- --- 187,196 ----
-
- on->on_dsas = NULL_DI_BLOCK;
-
- + if (on->on_task &&
- + (on->on_task->tk_result == &(on->on_resp.di_result.dr_res)))
- + on->on_task->tk_result = (struct ds_op_res *) NULL;
- +
- on->on_task = NULLTASK; /* Shows that this has been task_extracted */
- }
-
- *** quipu/_task_act.c Tue Mar 19 10:55:21 1991
- --- quipu/task_act.c Tue Mar 19 10:56:03 1991
- ***************
- *** 58,63 ****
- --- 58,64 ----
- if (tk->tk_resp.di_type == DI_ERROR)
- ds_error_free (tk->tk_error);
- else if (tk->tk_resp.di_type == DI_RESULT)
- + if (tk->tk_result)
- if (tk->tk_conn->cn_ctx == DS_CTX_X500_DAP)
- ds_res_free (&(tk->tk_result->dcr_dsres));
- else
-
- ORIGINAL REPORT:
-
- Saber C!
- -------------------- Bug No 14 --------------------------
- Return-Path: <c.robbins@uk.co.xtel>
- Received: from spitfire by lancaster.xtel.co.uk with SMTP (PP)
- id <01065-0@lancaster.xtel.co.uk>; Wed, 20 Mar 1991 16:08:21 +0000
- To: quipu-bugs@xtel.co.uk
- Subject: modify bug
- Date: Wed, 20 Mar 91 16:08:39 +0000
- From: Colin Robbins <c.robbins@xtel.co.uk>
-
- QUIPU VERSION: 6.8
-
- ISODE VERSION: 6.8
-
- MACHINE: Sun 4/330 (X-TEL config)
-
- O/S: SunOS 4.1
-
- PROGRAM: ros.quipu
-
- SYNOPSIS: Can core dump if adding a non leaf object
-
- DESCRIPTION:
-
- REPEAT BY:
-
- SAMPLE FIX:
-
- *** quipu/_ds_modify.c Wed Mar 20 16:07:22 1991
- --- quipu/ds_modify.c Wed Mar 20 16:07:06 1991
- ***************
- *** 727,732 ****
- --- 727,736 ----
- free (eptr->e_parent->e_edbversion);
- eptr->e_parent->e_edbversion = new_version();
-
- + if (eptr->e_edbversion)
- + free (eptr->e_edbversion);
- + eptr->e_edbversion = new_version();
- +
- save_dn = get_copy_dn(eptr) ;
-
- if ((filename = dn2edbfile(save_dn)) == NULLCP)
-
- ORIGINAL REPORT:
-
- ------- Forwarded Message
-
- Subject: Bug in (dish,quipu,or dsap) ?
- Reported-On: Wed, 20 Mar 91 14:07:46 +0000
- Reported-By: Alan Shepherd <gas@cs.nott.ac.uk>
- Reported-To: c.robbins@xtel.co.uk
-
-
- Colin,
-
- adding an entry to the tree then immedaitely deleting ti causes
- ros.quipu to die on sig 11. The entry is deleted, but a bad eDB file
- is left lying around. See /usr/tmp/dsap.log for detatils.
-
- alan
-
- ------- End of Forwarded Message
-
- -------------------- Bug No 15 --------------------------
- Return-Path: <c.robbins@uk.co.xtel>
- Received: from spitfire by lancaster.xtel.co.uk with SMTP (PP)
- id <02729-0@lancaster.xtel.co.uk>; Tue, 2 Apr 1991 09:55:25 +0100
- To: quipu-bugs@xtel.co.uk
- Subject: AOFFSET
- Date: Tue, 02 Apr 91 09:56:46 +0100
- From: Colin Robbins <c.robbins@xtel.co.uk>
-
- QUIPU VERSION: 6.8
-
- ISODE VERSION: 6.8
-
- MACHINE: Sun 4/330 (X-TEL config)
-
- O/S: SunOS 4.1
-
- PROGRAM: libdsap
-
- SYNOPSIS: Some compilers complain about compiling AOFFSET in x500as
-
- DESCRIPTION:
-
- REPEAT BY:
-
- SAMPLE FIX:
-
- ORIGINAL REPORT:
-
- ------- Forwarded Messages
-
- Subject: Re: Another 6.8 incompatability
- Reported-On: Tue, 26 Mar 91 08:40:59 -0800
- Reported-By: Marshall Rose <mrose@cheetah.ca.psi.com>
- Reported-To: kincl@iag.hp.com (Norman Kincl)
-
- To my reading, both definitions of AOFFSET are legal. The last time I check
- K&R, saying
-
- &a[0]
-
- was always equivalent to saying
-
- a
-
- The problem is that not all C compilers know this. Some fail on case #1 and
- others fail on case #2. I have solved the problem temporarily by putting
- case #1 under an #ifdef hpux and case #2 otherwise...
-
- /mtr
-
- ------- Message 2
-
- Subject: Another 6.8 incompatability
- Reported-On: Mon, 25 Mar 91 17:10:40 -0800
- Reported-By: Norman Kincl <kincl@iag.hp.com>
- Reported-To: wpp-camayocs@nisc.psi.net
-
-
- While trying to make dsap/x500as, I ran into some compiler errors complaining
- about "incorrect initialization". I traced this to the AOFFSET macro. It is
- defined to be
- #define AOFFSET(t,f) ((int ) (((t *)0)->f))
- As best as we could figure out, the difference between AOFFSET and OFFSET is
- that AOFFSET gives you the offset to an element which is an array. We changed
- the definition to the following:
- #define AOFFSET(t,f) ((int ) &(((t *)0)->f[0]))
-
- Question: is one or the other more or less standard C? (Do we have a compiler
- bug or does Quipu have a non-standard usgae of the language?
-
- Note: The right place to change things is in pepsy/pass2.c, changing the line
- that reads:
- (void) fprintf(fptab, "\n#define AOFFSET(t,f)\t((int ) (((t *)0)->f))\n\n")
- ;
- to:
- (void) fprintf(fptab, "\n#define AOFFSET(t,f)\t((int ) &(((t *)0)->f[0]))\n
- \n");
-
- - -Norm Kincl
-
- ------- End of Forwarded Messages
-
- -------------------- Bug No 16 --------------------------
- Return-Path: <c.robbins@uk.co.xtel>
- Received: from spitfire by lancaster.xtel.co.uk with SMTP (PP)
- id <09145-0@lancaster.xtel.co.uk>; Wed, 3 Apr 1991 09:42:10 +0100
- To: quipu-bugs@xtel.co.uk
- Subject: TURBO_DISK
- Date: Wed, 03 Apr 91 09:43:36 +0100
- From: Colin Robbins <c.robbins@xtel.co.uk>
-
- QUIPU VERSION: 6.8
-
- ISODE VERSION: 6.8
-
- MACHINE: Sun 4/330 (X-TEL config)
-
- O/S: SunOS 4.1
-
- PROGRAM: ros.quipu
-
- SYNOPSIS: TURBO_DISK causes a few problems
-
- DESCRIPTION:
-
- REPEAT BY:
-
- SAMPLE FIX:
-
- *** /dev/null Fri Mar 22 10:59:16 1991
- --- quipu/turbo/file2dn.c Fri Mar 22 11:00:43 1991
- ***************
- *** 0 ****
- --- 1,32 ----
- + #include <stdio.h>
- +
- + main( argc, argv )
- + int argc;
- + char **argv;
- + {
- + char *dn, *p;
- + int prefixlen;
- +
- + if ( argc < 3 )
- + prefixlen = 0;
- + else
- + prefixlen = strlen( argv[1] );
- +
- + dn = argv[2] + prefixlen;
- +
- + if ( *dn == '/' )
- + dn++;
- +
- + for ( p = dn; *p; p++ )
- + if ( *p == '/' )
- + *p = '@';
- +
- + for ( ; *p != '@' && p != dn; p-- )
- + *p = '\0';
- + *p = '\n';
- +
- + if ( p == dn )
- + dn = "root\n";
- +
- + write( 1, dn, strlen( dn ) );
- + }
- *** /dev/null Fri Mar 22 10:59:16 1991
- --- quipu/turbo/tdirname.c Fri Mar 22 11:01:13 1991
- ***************
- *** 0 ****
- --- 1,17 ----
- + main( argc, argv )
- + int argc;
- + char **argv;
- + {
- + char *p, *rindex();
- +
- + if ( argc < 2 || ((p = rindex( argv[ 1 ], '/' )) == 0) ) {
- + write( 1, ".\n", sizeof( ".\n" ) );
- + exit( 0 );
- + }
- +
- + *p = '\0';
- + write( 1, argv[ 1 ], strlen( argv[ 1 ] ) );
- + write( 1, "\n", 1 );
- +
- + exit( 0 );
- + }
- *** quipu/entry_load.oc Sat Mar 23 16:21:20 1991
- --- quipu/entry_load.c Sat Mar 23 16:57:50 1991
- ***************
- *** 86,92 ****
- --- 86,96 ----
- char * file;
- {
- FILE * mapfp;
- + #ifdef TURBO_DISK
- + char *ptr, *newname, *tmp, *fgetline();
- + #else /* TURBO_DISK */
- char *ptr, *newname, *tmp, *getline();
- + #endif /* TURBO_DISK */
- extern int parse_line;
- register int i;
-
- ***************
- *** 96,102 ****
- }
-
- parse_line = 0;
- ! while ( (ptr = getline(mapfp)) != NULLCP) {
- if ((newname = rindex(ptr,'#')) == NULLCP) {
- LLOG(log_dsap,LLOG_EXCEPTIONS,("Seperator missing in map file \"%s\", line %d",file,parse_line));
- (void) fclose (mapfp);
- --- 100,111 ----
- }
-
- parse_line = 0;
- ! #ifdef TURBO_DISK
- ! while ( (ptr = fgetline(mapfp)) != NULLCP)
- ! #else /* TURBO_DISK */
- ! while ( (ptr = getline(mapfp)) != NULLCP)
- ! #endif /* TURBO_DISK */
- ! {
- if ((newname = rindex(ptr,'#')) == NULLCP) {
- LLOG(log_dsap,LLOG_EXCEPTIONS,("Seperator missing in map file \"%s\", line %d",file,parse_line));
- (void) fclose (mapfp);
- *** h/quipu/_turbo.h Tue Mar 26 10:28:06 1991
- --- h/quipu/turbo.h Mon Mar 25 10:46:24 1991
- ***************
- *** 108,113 ****
- --- 108,114 ----
- caddr_t in_value;
- struct entry **in_entries;
- int in_num;
- + int in_max;
- } Index_node;
-
- #define NULLINDEXNODE ((Index_node *) 0)
- *** dsap/common/_turbo_index.c Mon Mar 25 10:20:07 1991
- --- dsap/common/turbo_index.c Tue Mar 26 13:33:46 1991
- ***************
- *** 101,123 ****
- Index_node *node;
- Index_node *dup;
- {
- ! int i, j;
- Entry tmp1, tmp2;
-
- ! /* check for duplicates */
- ! for ( i = 0; i < node->in_num; i++ ) {
- ! if ( node->in_entries[ i ] == dup->in_entries[ 0 ] )
- return( NOTOK );
- ! if (node->in_entries[i] > dup->in_entries[0])
- ! break;
- }
-
- ! node->in_entries = (struct entry **) realloc( (char *)node->in_entries,
- ! (unsigned) (sizeof(struct entry *) * (node->in_num + 1) ));
- node->in_num++;
-
- tmp1 = dup->in_entries[0];
- ! for (j = i; j < node->in_num; j++) {
- tmp2 = node->in_entries[j];
- node->in_entries[j] = tmp1;
- tmp1 = tmp2;
- --- 101,162 ----
- Index_node *node;
- Index_node *dup;
- {
- ! int j;
- ! int low, mid, high;
- Entry tmp1, tmp2;
-
- ! /*
- ! * Check for duplicates. If there are over 20 elements we do
- ! * a binary search, otherwise a simple linear one. This is just
- ! * a guess. It seems to work pretty well, though.
- ! */
- !
- ! tmp1 = dup->in_entries[0];
- !
- ! if ( node->in_num > 20 ) {
- ! low = 0;
- ! high = node->in_num - 1;
- ! mid = (low + high) / 2;
- ! while ( low < high ) {
- ! if ( node->in_entries[mid] < tmp1 )
- ! low = mid + 1;
- ! else if ( node->in_entries[mid] > tmp1 )
- ! high = mid - 1;
- ! else
- ! break; /* found a duplicates */
- !
- ! mid = (low + high) / 2;
- ! }
- !
- ! if ( node->in_entries[mid] == tmp1 )
- return( NOTOK );
- ! else if ( node->in_entries[mid] < tmp1 )
- ! mid++;
- ! } else {
- ! for ( mid = 0; mid < node->in_num; mid++ ) {
- ! if ( node->in_entries[mid] == tmp1 )
- ! return( NOTOK );
- ! if ( node->in_entries[mid] > tmp1 )
- ! break;
- ! }
- }
-
- ! /*
- ! * Realloc double the space we got last time. This may waste
- ! * some space in the index, but it speeds things up, works
- ! * around the QUIPU_MALLOC problem, and cuts down on fragmentation.
- ! */
- !
- ! if (node->in_num >= node->in_max) {
- ! node->in_max *= 2;
- ! node->in_entries =
- ! (struct entry **) realloc((char *)node->in_entries,
- ! (unsigned) (sizeof(struct entry *) * node->in_max));
- ! }
- node->in_num++;
-
- tmp1 = dup->in_entries[0];
- ! for (j = mid; j < node->in_num; j++) {
- tmp2 = node->in_entries[j];
- node->in_entries[j] = tmp1;
- tmp1 = tmp2;
- ***************
- *** 430,435 ****
- --- 469,475 ----
- entry *) );
- imem->in_entries[ 0 ] = (struct entry *) e;
- imem->in_num = 1;
- + imem->in_max = 1;
-
- /*
- * Now we insert the entry into the appropriate index.
- ***************
- *** 462,467 ****
- --- 502,508 ----
- sizeof(struct entry *) );
- imem->in_entries[ 0 ] = (struct entry *) e;
- imem->in_num = 1;
- + imem->in_max = 1;
-
- if ( avl_insert( &pindex[i].i_sroot, (caddr_t) imem, sindex_cmp,
- index_dup ) == OK ) {
- ***************
- *** 817,822 ****
- --- 858,867 ----
- LLOG( log_dsap, LLOG_EXCEPTIONS, ("Invalid subtree (%s)\n", tree) );
- return;
- }
- + if ( turbo_index_num == 0 ) {
- + LLOG( log_dsap, LLOG_EXCEPTIONS, ("WARNING: cannot index subtree - no attributes have been optimized"));
- + return;
- + }
-
- pindex = new_index( dn );
- dn_free( dn );
- ***************
- *** 840,845 ****
- --- 885,894 ----
-
- if ( (dn = str2dn( parent )) == NULLDN ) {
- LLOG( log_dsap, LLOG_EXCEPTIONS, ("Invalid parent (%s)\n", parent) );
- + return;
- + }
- + if ( turbo_index_num == 0 ) {
- + LLOG( log_dsap, LLOG_EXCEPTIONS, ("WARNING: cannot index siblings - no attributes have been optimized"));
- return;
- }
-
- *** quipu/turbo/file2dn.c.orig Fri Mar 22 11:00:43 1991
- --- quipu/turbo/file2dn.c Wed Mar 27 10:17:22 1991
- ***************
- *** 1,32 ****
- #include <stdio.h>
-
- ! main( argc, argv )
- int argc;
- char **argv;
- {
- ! char *dn, *p;
- int prefixlen;
-
- ! if ( argc < 3 )
- prefixlen = 0;
- else
- ! prefixlen = strlen( argv[1] );
-
- ! dn = argv[2] + prefixlen;
-
- ! if ( *dn == '/' )
- dn++;
-
- ! for ( p = dn; *p; p++ )
- ! if ( *p == '/' )
- ! *p = '@';
-
- ! for ( ; *p != '@' && p != dn; p-- )
- ! *p = '\0';
- ! *p = '\n';
- !
- ! if ( p == dn )
- ! dn = "root\n";
- !
- ! write( 1, dn, strlen( dn ) );
- }
- --- 1,55 ----
- #include <stdio.h>
- + #include <string.h>
-
- ! main(argc, argv)
- int argc;
- char **argv;
- {
- ! char *dn, *p, *mp;
- int prefixlen;
- + int mapped;
- + char mapbuf[BUFSIZ];
- + char dnbuf[3 * BUFSIZ];
- + char mapfile[BUFSIZ];
- + FILE *map;
-
- ! if (argc < 3)
- prefixlen = 0;
- else
- ! prefixlen = strlen(argv[1]);
-
- ! dn = argv[argc - 1] + prefixlen;
-
- ! if (*dn == '/')
- dn++;
-
- ! dnbuf[0] = '\0';
-
- ! while ((p = strchr(dn, '/')) != NULL) {
- ! strncpy(mapfile, argv[argc - 1], dn - argv[argc - 1]);
- ! mapfile[dn - argv[argc - 1]] = '\0';
- ! strcat(mapfile, "EDB.map");
- ! mapped = 0;
- ! if ((map = fopen(mapfile, "r")) != NULL) {
- ! while (fgets(mapbuf, BUFSIZ, map) != NULL)
- ! if ((mp = strchr(mapbuf, '#')) != NULL) {
- ! *mp++ = '\0';
- ! if (!strncmp(mp, dn, p - dn)) {
- ! strcat(dnbuf, mapbuf);
- ! mapped++;
- ! break;
- ! }
- ! }
- ! fclose(map);
- ! }
- ! if (!mapped)
- ! strncat(dnbuf, dn, p - dn);
- ! strcat(dnbuf, "@");
- ! dn = p + 1;
- ! }
- ! if (strlen(dnbuf) == 0)
- ! strcpy(dnbuf, "root@");
- ! p = strrchr(dnbuf, '@');
- ! *p = '\0';
- ! puts(dnbuf);
- }
- *** quipu/turbo/_edb2dbm.c Wed Apr 3 14:50:30 1991
- --- quipu/turbo/edb2dbm.c Wed Apr 3 14:50:41 1991
- ***************
- *** 106,111 ****
- --- 106,112 ----
- }
-
- (void) gdbm_close(db);
- + exit(0);
- }
-
-
- *** quipu/turbo/_edbcat.c Wed Apr 3 14:50:55 1991
- --- quipu/turbo/edbcat.c Wed Apr 3 14:50:59 1991
- ***************
- *** 52,55 ****
- --- 52,56 ----
- }
-
- (void) gdbm_close(db);
- + exit(0);
- }
- *** quipu/turbo/_file2dn.c Wed Apr 3 14:51:19 1991
- --- quipu/turbo/file2dn.c Wed Apr 3 14:51:23 1991
- ***************
- *** 52,55 ****
- --- 52,56 ----
- p = strrchr(dnbuf, '@');
- *p = '\0';
- puts(dnbuf);
- + exit(0);
- }
- ORIGINAL REPORT:
-
- ------- Forwarded Messages
-
- Subject: TURBO_DISK
- Reported-On: Fri, 22 Mar 91 07:37:46 +0000
- Reported-By: "Andrew Macpherson (Postmaster)" <A.Macpherson@stl.stc.co.uk>
- Reported-To: quipu-support@cs.ucl.ac.uk
-
-
- Thought I'ld try it:
-
- isode-interim/quipu/turbo }- ./make
- make: Fatal error: Don't know how to make target `file2dn.o'
-
- no file2dn.c ?
-
- May I have a copy --- I've 9000 changes, and 6000 additions to make, so this
- might help me get it done in sensible time.
-
-
- ------- Message 2
-
- Subject: Re: TURBO_DISK
- Reported-On: Sat, 23 Mar 91 17:08:05 +0000
- Reported-By: "Andrew Macpherson (Postmaster)" <andrew@uk.co.stc.stl.palm13>
- Reported-To: quipu-support@cs.ucl.ac.uk
-
- A small problem --- trying to read edb.map files as gdbm hashed files
- is fixed with this patch.
-
- Regards
- Andrew.
- PS aren't weekends wonderful times to get things done?
-
- *** CJR ***
- Patch removed and placed with a full set of fixes above
- ***********
-
- ------- End of Forwarded Messages
-
- -------------------- Bug No 17 --------------------------
- Return-Path: <c.robbins@uk.co.xtel>
- Received: from spitfire by lancaster.xtel.co.uk with SMTP (PP)
- id <09254-0@lancaster.xtel.co.uk>; Wed, 3 Apr 1991 09:49:47 +0100
- To: quipu-bugs@xtel.co.uk
- Subject: dish on HP-UX
- Date: Wed, 03 Apr 91 09:51:10 +0100
- From: Colin Robbins <c.robbins@xtel.co.uk>
-
- QUIPU VERSION: 6.8
-
- ISODE VERSION: 6.8
-
- MACHINE: HP
-
- O/S: HP-UX
-
- PROGRAM: little dish binaries
-
- SYNOPSIS: There is a problem with building
- others/quipu/uips/dish under HP-UX
-
- DESCRIPTION:
-
- REPEAT BY:
-
- SAMPLE FIX:
-
- *** /tmp/,RCSt1a17674 Wed Mar 27 17:43:13 1991
- --- others/quipu/uips/dish/quipurc.c Wed Mar 27 17:23:07 1991
- ***************
- *** 183,188
- Local[0] = 0;
-
- (void) stat(tailor_file, &buf) ;
- (void) seteuid(buf.st_uid) ; /* set effective to enable */
- /* us to read protected file */
-
-
- --- 183,189 -----
- Local[0] = 0;
-
- (void) stat(tailor_file, &buf) ;
- + #ifndef HPUX
- (void) seteuid(buf.st_uid) ; /* set effective to enable */
- /* us to read protected file */
- #else
- ***************
- *** 185,190
- (void) stat(tailor_file, &buf) ;
- (void) seteuid(buf.st_uid) ; /* set effective to enable */
- /* us to read protected file */
-
- if ((fp_tailor = fopen(tailor_file, "r")) == 0)
- {
-
- --- 186,195 -----
- #ifndef HPUX
- (void) seteuid(buf.st_uid) ; /* set effective to enable */
- /* us to read protected file */
- + #else
- + (void) setresuid(-1, buf.st_uid, -1) ; /* set effective to enable */
- + /* us to read protected file */
- + #endif
-
- if ((fp_tailor = fopen(tailor_file, "r")) == 0)
- {
- ***************
- *** 552,557
- */
- (void) ds_unbind() ;
- (void) unlink(tmpdraft) ;
- }
-
- void
-
- --- 557,564 -----
- */
- (void) ds_unbind() ;
- (void) unlink(tmpdraft) ;
- +
- + return(0);
- }
-
- void
-
- ORIGINAL REPORT:
-
- ------- Forwarded Message
-
- Subject: others/quipu/uips/dish fix
- Reported-On: Wed, 27 Mar 91 17:46:46 -0800
- Reported-By: Norman Kincl <kincl@iag.hp.com>
- Reported-To: wpp-camayocs@nisc.psi.net
-
- There is a problem with building others/quipu/uips/dish under HP-UX (and
- probably other SYS5 systems). The file quipurc.c needs the following changes:
-
- *** CJR ***
- official fix above
- ***********
- ------- End of Forwarded Message
-
- -------------------- Bug No 18 --------------------------
- Return-Path: <c.robbins@uk.co.xtel>
- Received: from spitfire by lancaster.xtel.co.uk with SMTP (PP)
- id <09316-0@lancaster.xtel.co.uk>; Wed, 3 Apr 1991 09:55:10 +0100
- To: quipu-bugs@xtel.co.uk
- Subject: removeing TURBO_AVL
- Date: Wed, 03 Apr 91 09:56:34 +0100
- From: Colin Robbins <c.robbins@xtel.co.uk>
-
- QUIPU VERSION: 6.8
-
- ISODE VERSION: 6.8
-
- MACHINE: Sun 4/330 (X-TEL config)
-
- O/S: SunOS 4.1
-
- PROGRAM: ros.quipu
-
- SYNOPSIS: Can't compile if TURBO_AVL is not defined
-
- DESCRIPTION:
-
- REPEAT BY:
-
- SAMPLE FIX:
-
- *** quipu/_ds_remove.c Mon Apr 1 12:07:32 1991
- --- quipu/ds_remove.c Mon Apr 1 12:08:38 1991
- ***************
- *** 178,184 ****
- {
- DN save_dn ;
- char *filename ;
- ! Entry empty_entry = get_default_entry (NULLENTRY) ;
- char *dn2edbfile() ;
-
- empty_entry->e_data = E_DATA_MASTER ;
- --- 178,184 ----
- {
- DN save_dn ;
- char *filename ;
- ! Entry empty_entry = get_default_entry (entryptr->e_parent) ;
- char *dn2edbfile() ;
-
- empty_entry->e_data = E_DATA_MASTER ;
- *** quipu/_turbo_disk.c Mon Apr 1 12:48:45 1991
- --- quipu/turbo_disk.c Mon Apr 1 12:48:56 1991
- ***************
- *** 218,224 ****
- save_heap = mem_heap;
- GENERAL_HEAP;
-
- ! if ( (db = turbo_open(e->e_parent, 0)) == NULL ) {
- mem_heap = save_heap;
- return(NOTOK);
- }
- --- 218,224 ----
- save_heap = mem_heap;
- GENERAL_HEAP;
-
- ! if ( (db = turbo_open(e->e_parent, 1)) == NULL ) {
- mem_heap = save_heap;
- return(NOTOK);
- }
- *** quipu/_turbo_disk.c Tue Apr 2 17:20:37 1991
- --- quipu/turbo_disk.c Tue Apr 2 17:22:53 1991
- ***************
- *** 54,62 ****
- * otherwise it will and a backup of the old one will be made.
- */
-
- ! static GDBM_FILE turbo_open(parent, create)
- Entry parent;
- ! char create;
- {
- GDBM_FILE db;
- DN dn, get_copy_dn();
- --- 54,63 ----
- * otherwise it will and a backup of the old one will be made.
- */
-
- ! static GDBM_FILE turbo_open(parent, create, backup)
- Entry parent;
- ! int create;
- ! int backup;
- {
- GDBM_FILE db;
- DN dn, get_copy_dn();
- ***************
- *** 80,91 ****
-
- /* try to open it */
- if ( create ) {
- ! /* first make a backup of the old one */
- ! (void) unlink(bakname);
- ! if ( link(turbo_gfname, bakname) != 0 )
- ! LLOG (log_dsap, LLOG_EXCEPTIONS,
- ! ("turbo: could not make backup"));
- ! (void) unlink(turbo_gfname);
-
- /* then open the new one */
- db = gdbm_open(turbo_gfname, 0, GDBM_WRCREAT, 0600, 0);
- --- 81,94 ----
-
- /* try to open it */
- if ( create ) {
- ! if ( backup ) {
- ! /* first make a backup of the old one */
- ! (void) unlink(bakname);
- ! if ( link(turbo_gfname, bakname) != 0 )
- ! LLOG (log_dsap, LLOG_EXCEPTIONS,
- ! ("turbo: could not make backup"));
- ! (void) unlink(turbo_gfname);
- ! }
-
- /* then open the new one */
- db = gdbm_open(turbo_gfname, 0, GDBM_WRCREAT, 0600, 0);
- ***************
- *** 176,182 ****
- save_heap = mem_heap;
- GENERAL_HEAP;
-
- ! if ((db = turbo_open(e, 1)) == NULL) {
- mem_heap = save_heap;
- return(NOTOK);
- }
- --- 179,185 ----
- save_heap = mem_heap;
- GENERAL_HEAP;
-
- ! if ((db = turbo_open(e, 1, 1)) == NULL) {
- mem_heap = save_heap;
- return(NOTOK);
- }
- ***************
- *** 218,224 ****
- save_heap = mem_heap;
- GENERAL_HEAP;
-
- ! if ( (db = turbo_open(e->e_parent, 1)) == NULL ) {
- mem_heap = save_heap;
- return(NOTOK);
- }
- --- 221,227 ----
- save_heap = mem_heap;
- GENERAL_HEAP;
-
- ! if ( (db = turbo_open(e->e_parent, 1, 0)) == NULL ) {
- mem_heap = save_heap;
- return(NOTOK);
- }
- ***************
- *** 260,266 ****
- save_heap = mem_heap;
- GENERAL_HEAP;
-
- ! if ( (db = turbo_open(e->e_parent, 0)) == NULL ) {
- mem_heap = save_heap;
- return(NOTOK);
- }
- --- 263,269 ----
- save_heap = mem_heap;
- GENERAL_HEAP;
-
- ! if ( (db = turbo_open(e->e_parent, 0, 0)) == NULL ) {
- mem_heap = save_heap;
- return(NOTOK);
- }
-
-
- ORIGINAL REPORT:
-
- ------- Forwarded Message
-
- Reported-On: Sun, 31 Mar 91 21:29:35 -0800
- Reported-By: clarity!bluenotes.clarity.com!bruceb@fernwood.mpk.ca.us (Bruce Bli
- nn)
-
- I have installed the new Quipu 6.8 on my system and found a problem when
- trying to delete the last entry from a node (this used to in an unwilling
- to perform error). The DSA gets a segmentation violation in the procedure
- entry_block_print when it tries to dereference block->e_parent->e_children
- since block->e_parent is NULL.
-
- I tried to recompile with TURBO_AVL undefined, but then the following
- files did not compile:
-
- dsap/x500as/asn_ext.c
- quipu/ds_modify.c
- quipu/turbo_debug.c
-
- and entry_cmp() was undefined. I fixed all these, but got yet another
- segmentation violation from somewhere in entry_load.c and decided to abandon
- this approach.
-
- I changed the if statement in entry_block_print to explicitly look for
- block->e_parent != NULL, and this seems to work fine. Is this causing or
- masking any other problems? Is there a better solution?
-
- Thanx
- Bruce Blinn
- bruceb@clarity.com
-
-
- ------- End of Forwarded Message
-
- -------------------- Bug No 19 --------------------------
- Return-Path: <c.robbins@uk.co.xtel>
- Received: from spitfire by lancaster.xtel.co.uk with SMTP (PP)
- id <12133-0@lancaster.xtel.co.uk>; Wed, 3 Apr 1991 11:23:26 +0100
- To: quipu-bugs@xtel.co.uk
- Subject: DSA.pseudo
- Date: Wed, 03 Apr 91 11:24:52 +0100
- From: Colin Robbins <c.robbins@xtel.co.uk>
-
- QUIPU VERSION: 6.8
-
- ISODE VERSION: 6.8
-
- MACHINE: Sun 4/330 (X-TEL config)
-
- O/S: SunOS 4.1
-
- PROGRAM: ros.quipu
-
- SYNOPSIS: If DSA.real file is missing, DSA may core dump.
-
- DESCRIPTION:
-
- REPEAT BY:
-
- SAMPLE FIX:
-
- *** quipu/_pseudo.c Wed Apr 3 11:14:23 1991
- --- quipu/pseudo.c Wed Apr 3 11:14:56 1991
- ***************
- *** 270,276 ****
- if ((dsa_real_attr = get_attributes (fptr)) == NULLATTR)
- #endif
- LLOG (log_dsap,LLOG_TRACE,("Error in DSA real entry: \"%s\" (%d)",filename,errno));
- }
-
- - (void) fclose (fptr);
- }
- --- 270,277 ----
- if ((dsa_real_attr = get_attributes (fptr)) == NULLATTR)
- #endif
- LLOG (log_dsap,LLOG_TRACE,("Error in DSA real entry: \"%s\" (%d)",filename,errno));
- +
- + (void) fclose (fptr);
- }
-
- }
-
- ORIGINAL REPORT:
-
- ------- Forwarded Message
-
- Subject: Missing DSA.real and DSA.pseudo files
- Reported-On: Tue, 27 Mar 90 00:27:35 -0600
- Reported-By: kiran@konark.lkg.dec.com (Kiran Somalwar)
- Reported-To: bug-isode@nisc.psi.net
-
-
- I am in section 2.7.4 of the white pages administrator guide for testing
- the stand-alone DSA when this error happens:
-
- On giving the command
- ros.quipu -t ./quiputailor
- the error is
- Bus error (core dumped) There are no files named DSA.real and DSA.pseudo in the
- current
- directory.
-
- ( *** CJR: logging info deleted *** )
-
- ------- End of Forwarded Message
-
- -------------------- Bug No 20 --------------------------
- Return-Path: <c.robbins@uk.co.xtel>
- Received: from spitfire by lancaster.xtel.co.uk with SMTP (PP)
- id <16476-0@lancaster.xtel.co.uk>; Wed, 3 Apr 1991 16:18:04 +0100
- To: quipu-bugs@xtel.co.uk
- Subject: installing dsap lint lib
- Date: Wed, 03 Apr 91 16:19:31 +0100
- From: Colin Robbins <c.robbins@xtel.co.uk>
-
- QUIPU VERSION: 6.8
-
- ISODE VERSION: 6.8
-
- MACHINE: Sun 4/330 (X-TEL config)
-
- O/S: SunOS 4.1
-
- PROGRAM: libdsap
-
- SYNOPSIS: You get a large number of errors when installing
- the libdsap lint library
-
- DESCRIPTION:
-
- REPEAT BY:
-
- SAMPLE FIX:
-
- *** dsap/_Makefile Wed Apr 3 11:55:11 1991
- --- dsap/Makefile Wed Apr 3 11:57:25 1991
- ***************
- *** 111,117 ****
- < llib-ldsap | \
- sed -e 's%#include "$(INCDIR)quipu/\([A-Z].*\)"%#include "$(INCDIR)pepsy/\1"%' | \
- sed -e 's%#include "/usr/include/\(.*\)"%#include <\1>%' > $@
- ! @$(UTILDIR)inst-lint.sh $(SYSTEM) -I$(INCDIRM) $(OPTIONS) $@
- -@ls -gls $@ $@.ln
- -@echo ""
-
- --- 111,117 ----
- < llib-ldsap | \
- sed -e 's%#include "$(INCDIR)quipu/\([A-Z].*\)"%#include "$(INCDIR)pepsy/\1"%' | \
- sed -e 's%#include "/usr/include/\(.*\)"%#include <\1>%' > $@
- ! @$(UTILDIR)inst-lint.sh $(SYSTEM) -I$(INCDIR).. $(OPTIONS) $@
- -@ls -gls $@ $@.ln
- -@echo ""
-
-
- ORIGINAL REPORT:
- various.
- -------------------- Bug No 21 --------------------------
- Return-Path: <c.robbins@uk.co.xtel>
- Received: from spitfire by lancaster.xtel.co.uk with SMTP (PP)
- id <16514-0@lancaster.xtel.co.uk>; Wed, 3 Apr 1991 16:22:08 +0100
- To: quipu-bugs@xtel.co.uk
- Subject: duplicates in oidtables
- Date: Wed, 03 Apr 91 16:23:35 +0100
- From: Colin Robbins <c.robbins@xtel.co.uk>
-
- QUIPU VERSION: 6.8
-
- ISODE VERSION: 6.8
-
- MACHINE: Sun 4/330 (X-TEL config)
-
- O/S: SunOS 4.1
-
- PROGRAM: all QUIPU binaries
-
- SYNOPSIS: Duplicat entries in the oidtables are not trapped
-
- DESCRIPTION:
-
- REPEAT BY:
-
- SAMPLE FIX:
- *** dsap/common/_oid.c Wed Apr 3 15:05:32 1991
- --- dsap/common/oid.c Wed Apr 3 15:32:31 1991
- ***************
- *** 127,133 ****
- while (1) { /* break out */
- if ( (name = get_entry ()) == NULLCP)
- break;
- ! add_entry (name,GEN);
- }
- (void) fclose (f_table);
-
- --- 127,134 ----
- while (1) { /* break out */
- if ( (name = get_entry ()) == NULLCP)
- break;
- ! if (! add_entry (name,GEN))
- ! fatal (-91,"Can't load oidtable.gen");
- }
- (void) fclose (f_table);
-
- ***************
- *** 140,146 ****
- while (1) { /* break out */
- if ( (name = get_entry ()) == NULLCP)
- break;
- ! add_entry (name,ATTR);
- }
- (void) fclose (f_table);
-
- --- 141,148 ----
- while (1) { /* break out */
- if ( (name = get_entry ()) == NULLCP)
- break;
- ! if (!add_entry (name,ATTR))
- ! fatal (-92,"Can't load oidtable.at");
- }
- (void) fclose (f_table);
-
- ***************
- *** 153,159 ****
- while (1) { /* break out */
- if ( (name = get_entry ()) == NULLCP)
- break;
- ! add_entry (name,OC);
- }
- (void) fclose (f_table);
-
- --- 155,162 ----
- while (1) { /* break out */
- if ( (name = get_entry ()) == NULLCP)
- break;
- ! if (!add_entry (name,OC))
- ! fatal (-93,"Can't load oidtable.oc");
- }
- (void) fclose (f_table);
-
- ***************
- *** 168,177 ****
- int i;
- register struct pair *p;
-
- if ((p = (struct pair *) calloc (1, sizeof *p)) == NULL) {
- SLOG (log_dsap, LLOG_EXCEPTIONS, NULLCP,
- ! ("calloc of alias structure failed"));
- ! return;
- }
-
- p -> p_name = a;
- --- 171,190 ----
- int i;
- register struct pair *p;
-
- + for (p = Pbuckets[PHASH (a)];
- + p && lexequ (p -> p_name, a);
- + p = p -> p_chain)
- + ; /* NO-OP */
- +
- + if ( p ) {
- + LLOG (log_dsap,LLOG_FATAL,("duplicate OID '%s'",a));
- + return FALSE;
- + }
- +
- if ((p = (struct pair *) calloc (1, sizeof *p)) == NULL) {
- SLOG (log_dsap, LLOG_EXCEPTIONS, NULLCP,
- ! ("calloc of oid hash structure failed"));
- ! return FALSE;
- }
-
- p -> p_name = a;
- ***************
- *** 181,190 ****
- Pbuckets[i] = p;
-
- if (d != NULLCP) {
- if ((p = (struct pair *) calloc (1, sizeof *p)) == NULL) {
- SLOG (log_dsap, LLOG_EXCEPTIONS, NULLCP,
- ! ("calloc of alias (2) structure failed"));
- ! return;
- }
-
- Palias[Palias_next].a_full = a;
- --- 194,213 ----
- Pbuckets[i] = p;
-
- if (d != NULLCP) {
- + for (p = Pbuckets[PHASH (d)];
- + p && lexequ (p -> p_name, d);
- + p = p -> p_chain)
- + ; /* NO-OP */
- +
- + if ( p ) {
- + LLOG (log_dsap,LLOG_FATAL,("duplicate alias OID '%s'",d));
- + return FALSE;
- + }
- +
- if ((p = (struct pair *) calloc (1, sizeof *p)) == NULL) {
- SLOG (log_dsap, LLOG_EXCEPTIONS, NULLCP,
- ! ("calloc of alias hash structure failed"));
- ! return FALSE;
- }
-
- Palias[Palias_next].a_full = a;
- ***************
- *** 197,202 ****
- --- 220,226 ----
- Pbuckets[i] = p;
- }
-
- + return TRUE;
- }
-
-
- ***************
- *** 211,217 ****
-
- if ((nptr = index (newname,SEPERATOR)) == 0) {
- LLOG (log_dsap,LLOG_FATAL,("oid missing in %s",newname));
- ! return;
- }
- *nptr = 0;
- if ((sep = index (newname,COMMA)) != 0) {
- --- 235,241 ----
-
- if ((nptr = index (newname,SEPERATOR)) == 0) {
- LLOG (log_dsap,LLOG_FATAL,("oid missing in %s",newname));
- ! return FALSE;
- }
- *nptr = 0;
- if ((sep = index (newname,COMMA)) != 0) {
- ***************
- *** 224,240 ****
- case GEN:
- Current = &OIDTable[NumEntries];
- Current->ot_name = strdup(newname);
- ! add_entry_aux (Current->ot_name,(caddr_t)&OIDTable[NumEntries],GEN,alias);
- break;
- case ATTR:
- Current = &attrOIDTable[attrNumEntries].oa_ot;
- Current->ot_name = strdup(newname);
- ! add_entry_aux (Current->ot_name,(caddr_t)&attrOIDTable[attrNumEntries],ATTR,alias);
- break;
- case OC:
- Current = &ocOIDTable[ocNumEntries].oc_ot;
- Current->ot_name = strdup(newname);
- ! add_entry_aux (Current->ot_name,(caddr_t)&ocOIDTable[ocNumEntries],OC,alias);
- break;
- }
- *nptr = SEPERATOR;
- --- 248,267 ----
- case GEN:
- Current = &OIDTable[NumEntries];
- Current->ot_name = strdup(newname);
- ! if (!add_entry_aux (Current->ot_name,(caddr_t)&OIDTable[NumEntries],GEN,alias))
- ! return FALSE;
- break;
- case ATTR:
- Current = &attrOIDTable[attrNumEntries].oa_ot;
- Current->ot_name = strdup(newname);
- ! if (!add_entry_aux (Current->ot_name,(caddr_t)&attrOIDTable[attrNumEntries],ATTR,alias))
- ! return FALSE;
- break;
- case OC:
- Current = &ocOIDTable[ocNumEntries].oc_ot;
- Current->ot_name = strdup(newname);
- ! if (!add_entry_aux (Current->ot_name,(caddr_t)&ocOIDTable[ocNumEntries],OC,alias))
- ! return FALSE;
- break;
- }
- *nptr = SEPERATOR;
- ***************
- *** 248,254 ****
- *ptr++ = 0;
- if (( p = get_oid (ptr)) == NULLCP) {
- LLOG (log_dsap,LLOG_FATAL,("invalid alias oid '%s'",ptr));
- ! return;
- }
- if ((oid = str2oid (p)) == NULLOID)
- Current->ot_aliasoid = NULLOID;
- --- 275,281 ----
- *ptr++ = 0;
- if (( p = get_oid (ptr)) == NULLCP) {
- LLOG (log_dsap,LLOG_FATAL,("invalid alias oid '%s'",ptr));
- ! return FALSE;
- }
- if ((oid = str2oid (p)) == NULLOID)
- Current->ot_aliasoid = NULLOID;
- ***************
- *** 258,264 ****
- ptr = get_oid (nptr);
- if (ptr == NULLCP) {
- LLOG (log_dsap,LLOG_FATAL,("invalid oid '%s'",nptr));
- ! return;
- }
- Current->ot_stroid = strdup(ptr);
-
- --- 285,291 ----
- ptr = get_oid (nptr);
- if (ptr == NULLCP) {
- LLOG (log_dsap,LLOG_FATAL,("invalid oid '%s'",nptr));
- ! return FALSE;
- }
- Current->ot_stroid = strdup(ptr);
-
- ***************
- *** 275,288 ****
- NumEntries++; /* nothing else to do */
- break;
- case ATTR:
- ! if (sep == 0)
- LLOG (log_dsap,LLOG_FATAL,("syntax missing in %s",newname));
- ! else {
- if (( ptr = index (sep,SEPERATOR)) != NULLCP) {
- *ptr++ = 0;
- ! if (lexequ (ptr,"FILE") != 0)
- LLOG (log_dsap,LLOG_FATAL,("FILE syntax expected, '%s' found",ptr));
- ! else {
- attrOIDTable[attrNumEntries].oa_syntax = str2syntax(sep);
- attrOIDTable[attrNumEntries].oa_syntax += AV_WRITE_FILE;
- attrNumEntries++;
- --- 302,317 ----
- NumEntries++; /* nothing else to do */
- break;
- case ATTR:
- ! if (sep == 0) {
- LLOG (log_dsap,LLOG_FATAL,("syntax missing in %s",newname));
- ! return FALSE;
- ! } else {
- if (( ptr = index (sep,SEPERATOR)) != NULLCP) {
- *ptr++ = 0;
- ! if (lexequ (ptr,"FILE") != 0) {
- LLOG (log_dsap,LLOG_FATAL,("FILE syntax expected, '%s' found",ptr));
- ! return FALSE;
- ! } else {
- attrOIDTable[attrNumEntries].oa_syntax = str2syntax(sep);
- attrOIDTable[attrNumEntries].oa_syntax += AV_WRITE_FILE;
- attrNumEntries++;
- ***************
- *** 301,307 ****
- else
- ocNumEntries++;
- }
- ! return;
- }
-
- char * get_oid (str)
- --- 330,336 ----
- else
- ocNumEntries++;
- }
- ! return TRUE;
- }
-
- char * get_oid (str)
-
- ORIGINAL REPORT:
- C Robbins
- -------------------- Bug No 22 --------------------------
- Return-Path: <c.robbins@uk.co.xtel>
- Received: from spitfire by lancaster.xtel.co.uk with SMTP (PP)
- id <16528-0@lancaster.xtel.co.uk>; Wed, 3 Apr 1991 16:23:58 +0100
- To: quipu-bugs@xtel.co.uk
- Subject: null attrs in RDNS
- Date: Wed, 03 Apr 91 16:25:25 +0100
- From: Colin Robbins <c.robbins@xtel.co.uk>
-
- QUIPU VERSION: 6.8
-
- ISODE VERSION: 6.8
-
- MACHINE: Sun 4/330 (X-TEL config)
-
- O/S: SunOS 4.1
-
- PROGRAM: various QUIPU
-
- SYNOPSIS: It is possible to create an RDN without a value in
- some circumstances.
-
- DESCRIPTION:
-
- REPEAT BY:
-
- SAMPLE FIX:
-
- *** dsap/common/_rdn_str.c Wed Apr 3 16:05:52 1991
- --- dsap/common/rdn_str.c Wed Apr 3 16:08:00 1991
- ***************
- *** 37,42 ****
- --- 37,48 ----
- return (NULLRDN);
- }
-
- + if (*ptr == 0) {
- + *save = val;
- + parse_error ("Attribute Value missing in RDN '%s'",str);
- + return (NULLRDN);
- + }
- +
- rdn = rdn_comp_alloc();
- rdn->rdn_next = NULLRDN;
- rdn->rdn_at = at;
-
- ORIGINAL REPORT:
- -------------------- Bug No 23 --------------------------
- Return-Path: <c.robbins@uk.co.xtel>
- Received: from spitfire by lancaster.xtel.co.uk with SMTP (PP)
- id <04224-0@lancaster.xtel.co.uk>; Fri, 19 Apr 1991 11:19:56 +0100
- To: quipu-bugs@xtel.co.uk
- Subject: modify -remove
- Date: Fri, 19 Apr 91 11:16:48 +0100
- From: Colin Robbins <c.robbins@xtel.co.uk>
-
- QUIPU VERSION: 6.8
-
- ISODE VERSION: 6.8
-
- MACHINE: Sun 4/330 (X-TEL config)
-
- O/S: SunOS 4.1
-
- PROGRAM: dish
-
- SYNOPSIS: problem removing attributes with the '-remove' flag
-
- DESCRIPTION: If there are multiple values for the attributes, a
- remove attempt sometimes failes.
-
- REPEAT BY:
-
- SAMPLE FIX:
-
- *** quipu/dish/_modify.c Fri Apr 19 11:15:04 1991
- --- quipu/dish/modify.c Fri Apr 19 10:44:50 1991
- ***************
- *** 214,220 ****
-
- if (start != 0)
- {
- ! if (build_modify(start, &mod_arg) == NOTOK)
- {
- return ;
- }
- --- 214,220 ----
-
- if (start != 0)
- {
- ! if (build_modify(start, &mod_arg) == NOTOK)
- {
- return ;
- }
- ***************
- *** 698,709 ****
- struct entrymod *emnew ;
- AttributeType a_t ;
- AttributeValue new_AV ;
- ! AV_Sequence new_avs ;
- Attr_Sequence eptr ;
-
- char *ptr ;
- char *str_attr_type = NULLCP ;
- char *str_attr_val = NULLCP ;
-
- while (start)
- {
- --- 698,711 ----
- struct entrymod *emnew ;
- AttributeType a_t ;
- AttributeValue new_AV ;
- ! AV_Sequence new_avs, tmp_avs ;
- Attr_Sequence eptr ;
-
- char *ptr ;
- char *str_attr_type = NULLCP ;
- char *str_attr_val = NULLCP ;
- + int num_attr_vals = 0 ;
- + int attr_val_match = 0 ;
-
- while (start)
- {
- ***************
- *** 773,789 ****
- }
- else
- {
- ! if (eptr->attr_value &&
- ! AttrV_cmp(new_AV, &(eptr->attr_value->avseq_av)) == OK)
- ! {
- ! if (eptr->attr_value->avseq_next == NULLAV)
- ! emnew->em_type = EM_REMOVEATTRIBUTE ;
- ! else
- ! emnew->em_type = EM_REMOVEVALUES ;
- }
- else
- {
- ps_printf(OPT, "Can't remove value that is not present.\n") ;
- }
- }
- }
- --- 775,800 ----
- }
- else
- {
- ! num_attr_vals = 0 ;
- ! attr_val_match = 0 ;
- !
- ! for (tmp_avs = eptr->attr_value; tmp_avs != NULLAV;
- ! tmp_avs = tmp_avs->avseq_next)
- ! {
- ! if (AttrV_cmp(new_AV, &(tmp_avs->avseq_av)) == OK)
- ! {
- ! attr_val_match = 1 ;
- ! }
- ! num_attr_vals++ ;
- }
- + if (num_attr_vals == 1)
- + emnew->em_type = EM_REMOVEATTRIBUTE ;
- else
- + emnew->em_type = EM_REMOVEVALUES ;
- + if (attr_val_match == 0)
- {
- ps_printf(OPT, "Can't remove value that is not present.\n") ;
- + return (NOTOK) ;
- }
- }
- }
-
- ORIGINAL REPORT: Mark Knopper to wpp-camayocs
-
- -------------------- Bug No 24 --------------------------
- Return-Path: <c.robbins@uk.co.xtel>
- Received: from spitfire by lancaster.xtel.co.uk with SMTP (PP)
- id <17685-0@lancaster.xtel.co.uk>; Wed, 1 May 1991 12:32:15 +0100
- To: quipu-bugs@xtel.co.uk
- Subject: Loading with EDB files missing
- Date: Wed, 01 May 91 12:32:11 +0100
- From: Colin Robbins <c.robbins@xtel.co.uk>
-
- QUIPU VERSION: 6.8
-
- ISODE VERSION: 6.8
-
- MACHINE: Sun 4/330 (X-TEL config)
-
- O/S: SunOS 4.1
-
- PROGRAM: ros.quipu
-
- SYNOPSIS: if an EDB file was missing, sometimes the DSA would
- incorrectly load the database, thinking it had MASTER
- control of the EDB file above!
-
- DESCRIPTION:
-
- REPEAT BY:
-
- SAMPLE FIX:
-
- *** quipu/_entry_load.c Wed May 1 12:22:58 1991
- --- quipu/entry_load.c Wed May 1 12:24:13 1991
- ***************
- *** 360,368 ****
- if (file_check(offset, e) == OK) {
- if ((e->e_children = getentry_block(e, filename)) == NULLAVL) {
- if (e->e_allchildrenpresent != FALSE &&
- ! e->e_leaf == FALSE)
- return(OK);
- ! else
- return(NOTOK) ;
- }
- if (parse_status != 0)
- --- 360,370 ----
- if (file_check(offset, e) == OK) {
- if ((e->e_children = getentry_block(e, filename)) == NULLAVL) {
- if (e->e_allchildrenpresent != FALSE &&
- ! e->e_leaf == FALSE) {
- ! e->e_allchildrenpresent = FALSE;
- ! got_all = FALSE;
- return(OK);
- ! } else
- return(NOTOK) ;
- }
- if (parse_status != 0)
- *** quipu/_shadow.c Wed May 1 10:58:16 1991
- --- quipu/shadow.c Wed May 1 10:59:39 1991
- ***************
- *** 415,423 ****
- }
-
- #ifdef TURBO_AVL
- - #ifdef TURBO_INDEX
- - turbo_index_delete(eptr);
- - #endif
-
- if (unravel_attribute(ne, &err) != OK) {
- pslog (log_dsap,LLOG_EXCEPTIONS,"shadow: unravel failure",
- --- 415,420 ----
- ***************
- *** 441,446 ****
- --- 438,447 ----
- return;
- }
-
- + #ifdef TURBO_INDEX
- + turbo_index_delete(eptr);
- + #endif
- +
- if (ne->e_parent == NULLENTRY) {
- entry_replace(database_root, ne);
- } else {
- ***************
- *** 451,456 ****
- --- 452,459 ----
- ne = eptr;
-
- if (unravel_attribute(eptr, &err) != OK) {
- + pslog (log_dsap,LLOG_EXCEPTIONS,"shadow: 2nd unravel failure",
- + dn_print, (caddr_t) dn);
- log_ds_error (&err);
- ds_error_free (&err);
- return;
-
- ORIGINAL REPORT:
-
- Andrew Macpherson & Giant Tortoise!
- -------------------- Bug No 25 --------------------------
- Return-Path: <c.robbins@uk.co.xtel>
- Received: from spitfire by lancaster.xtel.co.uk with SMTP (PP)
- id <00726-0@lancaster.xtel.co.uk>; Tue, 7 May 1991 11:50:25 +0100
- To: quipu-bugs@xtel.co.uk
- Subject: dsacontrol -refresh counting problem
- Date: Tue, 07 May 91 11:50:13 +0100
- From: Colin Robbins <c.robbins@xtel.co.uk>
-
- QUIPU VERSION: 6.8
-
- ISODE VERSION: 6.8
-
- MACHINE: Sun 4/330 (X-TEL config)
-
- O/S: SunOS 4.1
-
- PROGRAM: ros.quipu
-
- SYNOPSIS: Gets the DSA size count wrong if you use dsacontrol -refresh.
-
- DESCRIPTION: All entries ARE freed - the grow is to be expected.
-
- REPEAT BY:
-
- SAMPLE FIX:
-
- *** quipu/_entry_load.c Tue May 7 11:20:52 1991
- --- quipu/entry_load.c Tue May 7 11:44:22 1991
- ***************
- *** 702,707 ****
- --- 702,765 ----
- #endif
- }
-
- + static dsa_directory_free (directory)
- + Entry directory;
- + {
- + extern Entry database_root;
- + extern int local_slave_size;
- + extern int slave_edbs;
- + extern int local_master_size;
- + extern int master_edbs;
- + extern int local_cache_size;
- +
- +
- + if (directory != NULLENTRY) {
- +
- + #ifdef TURBO_AVL
- + if (directory != database_root)
- + turbo_index_delete(directory);
- +
- + if (directory->e_children != NULLAVL) {
- + switch (directory->e_data) {
- + case E_TYPE_SLAVE: slave_edbs--; break;
- + case E_DATA_MASTER: master_edbs--; break;
- + default: break;
- + }
- + (void) avl_free(directory->e_children, dsa_directory_free);
- + }
- + switch (directory->e_data) {
- + case E_TYPE_SLAVE: local_slave_size--; break;
- + case E_DATA_MASTER: local_master_size--; break;
- + case E_TYPE_CACHE_FROM_MASTER:
- + local_cache_size--; break;
- + default: break;
- + }
- + entry_free(directory);
- + #else
- + Entry ptr;
- + Entry next;
- + switch (directory->e_data) {
- + case E_TYPE_SLAVE: slave_edbs--; break;
- + case E_DATA_MASTER: master_edbs--; break;
- + default: break;
- + }
- +
- + for ( ptr = directory; ptr != NULLENTRY; ptr = next ) {
- + next = ptr->e_sibling;
- + dsa_directory_free (ptr->e_child);
- + switch (ptr->e_data) {
- + case E_TYPE_SLAVE: local_slave_size--; break;
- + case E_DATA_MASTER: local_master_size--; break;
- + case E_TYPE_CACHE_FROM_MASTER:
- + local_cache_size--; break;
- + default: break;
- + }
- + entry_free (ptr);
- + }
- + #endif
- + }
- + }
- +
- int refreshing;
-
- refresh_from_disk(dn)
- ***************
- *** 739,748 ****
-
- if (dn == NULLDN) {
- database_root = child;
- ! directory_free (child);
- database_root = tmp;
- } else
- ! directory_free(child);
-
- return (OK);
- }
- --- 797,806 ----
-
- if (dn == NULLDN) {
- database_root = child;
- ! dsa_directory_free (child);
- database_root = tmp;
- } else
- ! dsa_directory_free(child);
-
- return (OK);
- }
-
-
- ORIGINAL REPORT:
-
- ------- Forwarded Message
-
- Subject: Problems with DSA refresh
- Reported-On: 06 May 91 15:13:00 -0500
- Reported-By: Peter (P.W.) Whittaker <PWW@BNR.ca>
- Reported-To: quipu-support@cs.ucl.ac.uk
-
- Greetings, I'm concerned with the results of "dsacontrol -refresh"
- operations, as initiated from dish.
-
- After starting a 6.8 DSA on a Sun 4/490, "dsacontrol -info" showed
- 10820 Master Entries in 20 EDB files, 753 Slave Entries in 13 EDB files,
- while my process monitoring software showed DATA size at 3610 "clicks".
- After two "dsacontrol -refresh" operations, these numbers had grown to
- 27632 Master Entries in 45 EDBs, 767 Slave Entries in 15 EDBs, and
- DATA == 6493 "clicks". Total system swap usage rose from 34816 K to
- 58520 K (QUIPU 6.8 was effectively the only process running).
- ("clicks" is a Sun-ism - see sys/proc.h. I don't know how it relates
- to the real world).
-
- It seems that QUIPU is not "forgetting" about the original entries
- (i.e. the ones it is supposed to be refreshing). Is there a quick-and-easy
- way to patch this (I don't mind running a non-standard QUIPU - swap space
- is at a premium).
-
- I had observed the same behavior with 6.1, but decided to wait and see
- how 6.8 behaved - it seems to behave the same way :-<.
-
- Thanks for your help,
-
- Peter W.
-
- Peter Whittaker [%%%%%%%%%%%%%%%%%%%%%%%%%%] Open Systems Integration
- pww@bnr.ca [ DSA's'R'Us! ] Bell Northern Research
- Ph: +1 613 765 2064 [ ] P.O. Box 3511, Station C
- FAX:+1 613 763 3283 [__________________________] Ottawa, Ontario, K1Y 4H7
-
- ------- End of Forwarded Message
-
-